﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GraphicsFramework.Enum;

namespace GraphicsFramework.Support
{
    public class ShortCutCollection : List<Keyboard>
    {
        public ShortCutCollection()
        {
            //Drawing relating
            Add(new Keyboard(EnumKeys.A, true, false, false, EnumActionShortcuts.SELECTALLDRAWING));
            Add(new Keyboard(EnumKeys.Enter, false, false, false, EnumActionShortcuts.ENDDRAWING));
            Add(new Keyboard(EnumKeys.Escape, false, false, false, EnumActionShortcuts.CANCELDRAWING));
            Add(new Keyboard(EnumKeys.Delete, false, false, false, EnumActionShortcuts.DELETE));
            Add(new Keyboard(EnumKeys.V, false, false, false, EnumActionShortcuts.ADDNODE));

            //Zoom
            Add(new Keyboard(EnumKeys.Add, true, false, false, EnumActionShortcuts.ZOOMIN));
            Add(new Keyboard(EnumKeys.Subtract, true, false, false, EnumActionShortcuts.ZOOMOUT));
            Add(new Keyboard(EnumKeys.F2, false, false, false, EnumActionShortcuts.ZOOMWINDOW));
            Add(new Keyboard(EnumKeys.F3, false, false, false, EnumActionShortcuts.RESTOREVIEW));
            Add(new Keyboard(EnumKeys.F4, false, false, false, EnumActionShortcuts.ZOOMEXTENT));

            //Moving and Panning
            Add(new Keyboard(EnumKeys.Left, false, false, false, EnumActionShortcuts.MOVELEFT));
            Add(new Keyboard(EnumKeys.Right, false, false, false, EnumActionShortcuts.MOVERIGHT));
            Add(new Keyboard(EnumKeys.Up, false, false, false, EnumActionShortcuts.MOVEUP));
            Add(new Keyboard(EnumKeys.Down, false, false, false, EnumActionShortcuts.MOVEDOWN));
            
            //Rotate
            Add(new Keyboard(EnumKeys.Up, true, false, false, EnumActionShortcuts.ROTATELEFT));
            Add(new Keyboard(EnumKeys.Down, true, false, false, EnumActionShortcuts.ROTATERIGHT));

            //Copy, Cut and Paste
            Add(new Keyboard(EnumKeys.C, true, false, false, EnumActionShortcuts.COPY));
            Add(new Keyboard(EnumKeys.X, true, false, false, EnumActionShortcuts.CUT));
            Add(new Keyboard(EnumKeys.V, true, false, false, EnumActionShortcuts.PASTE));

            //Display
            Add(new Keyboard(EnumKeys.G, false, false, false, EnumActionShortcuts.SHOWGRID));

            //Draw
            Add(new Keyboard(EnumKeys.L, false, false, false, EnumActionShortcuts.DRAWLINE));
            Add(new Keyboard(EnumKeys.O, false, false, false, EnumActionShortcuts.DRAWPOLYLINE));
            Add(new Keyboard(EnumKeys.P, false, false, false, EnumActionShortcuts.DRAWPOLYGON));
            Add(new Keyboard(EnumKeys.R, false, false, false, EnumActionShortcuts.DRAWRECTANGLE));
            Add(new Keyboard(EnumKeys.T, false, false, false, EnumActionShortcuts.DRAWSTRING));
            Add(new Keyboard(EnumKeys.C, false, false, false, EnumActionShortcuts.DRAWCIRCLE));
        }
    }
}
